10. The Life of Dennis Ritchie
The man who built an operating system, using a language he created.

An unexpected call in 1998
At the time, Dennis Ritchie led the research group developing the Inferno operating system and the Limbo programming language.[1]

Will Inferno ever be able to compete with Java?

Ring ring!
Ritchie and Ken Thompson were named recipients of the 1998 National Medal of Technology and received their medals at the White House in April 1999.[11]

President Clinton is giving us the National Medal of Technology? Congratulations, Ken. It looks like we'll have to go to Washington.

Aren't we getting too many awards?

Yeah. I was happy with just the Turing Award.

Ha, same here.
His father and Bell Labs
In the 1940s, Dennis Ritchie’s father, Alistair E. Ritchie, studied switching circuit theory at Bell Labs.[2] Automatic telephone exchanges were already in use, but many calls still needed an operator to connect them.[12] Bell Labs, the Bell System's research organization, continued developing automatic switching technology in the postwar years.[13]

What do you do, Dad?
I study switching circuits. They're used to connect phone calls.

We can combine switches to make circuits that do calculations. Some colleagues and I are writing a book about it.
Discovering computers at Harvard
A decade or so later.

Dad, I've been accepted to Harvard.

Congratulations. Have you decided whether to study physics or mathematics?
I can't decide. I like both.

Math and physics, both are intriguing.
Around 1960.

Introduction to Computing Learn about computers and programming Inquiries: ...

With a computer, I could do the math much faster.
A talk about computers caught Ritchie’s interest, and he took an introductory course. After learning about analog computers and punched-card equipment, his class wrote a program to run on a UNIVAC I.[3]

Although his undergraduate major was physics, Ritchie grew increasingly interested in both the theory and practice of computing.[3]


You studied physics, but your research is about computation...
It all comes back to math.
His graduate thesis concerned hierarchies of recursive functions, a topic now associated with computer science. He studied it as a graduate student in applied mathematics, while computer science was still emerging as a distinct discipline.[2][3]

Ritchie was also interested in the practical side of computing. For three years, he taught as a teaching assistant in the introductory course he had taken. By then, the course used an IBM 7094.[3]

Bell Labs and the birth of Unix
In 1967, Ritchie joined Bell Labs.[2]

Oh, are you Alistair's son?
Yes, I am.
I know your father well.

Welcome to Bell Labs. Our team is co-developing an operating system called Multics with MIT and GE. Are you interested?
A new operating system? Sounds fun.

Not always. We're working with several organizations...
In 1969, Bell Labs withdrew from the Multics project.[2]

Finally, we withdrew from the Multics project. But now, what system are we going to use?
Don't worry, I'm working on a new operating system. Interested?

A new operating system?
Ken Thompson was building a new operating system that drew on some ideas from Multics. Ritchie and their colleagues joined the effort, and the system became Unix.[2][4]

From B to C
Bell Labs, around 1972.
During Unix development, the team moved from the PDP-7 to the PDP-11. Their incompatible instruction sets meant rewriting the assembly code. Ritchie tried to implement Unix in Thompson’s B language, but B had limitations on the PDP-11.[4]

What are you doing now?
I'm trying to write Unix in B, but it's tough. The language itself needs quite a few changes.
B could not fully use the PDP-11’s features. Ritchie added types and reworked the compiler, creating C. In the summer of 1973, the Unix kernel was rewritten in C.[4]

Now we can write most of the OS kernel in C.

Wow, an OS kernel in C!
Pleased
Unix and C spread from Bell Labs to universities and other institutions. Later, companies such as HP and Sun Microsystems built their own operating systems based on Unix code, helping make Unix a major industry standard.

Learning C through a book
Brian Kernighan, who worked at Bell Labs, wrote a B tutorial for in-house training. After C was developed, he wrote a C tutorial too. It later became the basis for a book.[1]


Dennis, remember my C tutorial? Want to turn it into a book together?
Good idea!
The C Programming Language was first published in 1978, with a second edition following in 1988. Translated into many languages, it became widely read by people learning C.[4][5]
Second-edition cover. Image source: Wikipedia.

Beyond Unix: Plan 9

Hmm... What comes after Unix?
Bell Labs began developing an operating system called Plan 9 in the late 1980s as a successor to Unix. This research system rethought how computers could share resources.[6]

As the research group’s leader, Ritchie mainly managed and advised the team. He joked that his contribution was signing paychecks, though he also admitted to writing a little code himself.[1]

Are you coding?
Ah. You caught me.
Plan 9 was used inside Bell Labs, but finding outside customers was difficult. It did not widely replace Unix.

It's hard to find customers for Plan 9.
Inferno and the ideas that lived on
In the 1990s, Bell Labs began developing Inferno and the Limbo programming language for a wide range of devices and networks. Limbo programs ran on the Dis virtual machine, making them less dependent on particular hardware.[7][8]

All I did was sign the paychecks...

Sun announced Java. Like Inferno, it uses a virtual machine.
Yes, I heard.
Although Ritchie contributed to and advised on their development, Plan 9 and Inferno did not spread as widely as Unix. Vita Nuova later continued Inferno’s development and distribution.[1][8]

We're struggling to find customers for Inferno too. We'll have to hand it over to another company.
I'm glad someone can keep it going.
There were various obstacles, including marketing difficulties. Eric Raymond pointed to another in The Art of Unix Programming: users already had a usable system in Unix.[9]

The most dangerous enemy of a better solution is an existing codebase that is just good enough.
Some ideas from Plan 9 influenced other systems. UTF-8, implemented in Plan 9 by Ken Thompson and Rob Pike, is one example.[10] The system itself did not become widespread, but its ideas lived on.

File interfaces
Life after retirement in 2007


We'll miss you around here.
Time to do some traveling.

How's your health these days? You've lost so much weight since the surgery.
Ha, don't worry. There's still so much to explore.

Dennis isn't answering. I'd better go check on him.
A quiet farewell in October 2011
Dennis Ritchie died at his home in New Jersey in October 2011.[1]

Dennis!


He accomplished so much, but lived so quietly.
He developed a language, then built an operating system with his colleagues...

End
The dialogue is dramatized from historical sources, not a record of actual conversations. The discovery and funeral scenes are imagined, not eyewitness reconstructions. Please leave a comment if you spot an error.
References
- Dennis M. Ritchie homepage and family memorial
- Dennis M. Ritchie, autobiographical sketch
- Interview with Dennis Ritchie (2003)
- Dennis M. Ritchie, The Development of the C Language
- Brian Kernighan, The C Programming Language
- Plan 9 from Bell Labs: Overview
- Phil Winterbottom and Rob Pike, The Design of the Inferno Virtual Machine
- Vita Nuova, Inferno
- Eric S. Raymond, The Art of Unix Programming: Plan 9
- Rob Pike and Ken Thompson, Hello World
- Dennis M. Ritchie, Letter from Washington
- David A. Price, Goodbye, Operator
- Nokia Bell Labs, History